iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
DevOps

從零開始的DevOps猴!系列 第 12

Day12-Docker Compose懶人包

  • 分享至 

  • xImage
  •  

爭什麼,摻在一起做成撒尿牛丸啊,笨蛋!

前面建置了屬於自己的Docker Image,但如果多個Docker Image是要同時管理,Docker Compose提供這項功能給大家服用,我們今天來嘗試看看!

Docker Compose優缺點

優點:

  1. 簡化複雜應用的管理: 可以在單個文件中定義和運行多容器應用。
  2. 版本控制: 可以將應用的配置納入版本控制系統。
  3. 環境一致性: 確保開發、測試和生產環境的一致性。
  4. 提高生產力: 通過預定義的命令簡化了常見操作。
  5. 可擴展性: 易於擴展和修改服務配置。

缺點:

  1. 學習曲線: 需要學習YAML語法和Compose文件結構。
  2. 單機限制: 主要用於單機環境,不適合大規模集群部署。
  3. 功能限制: 某些Docker功能在Compose中可能不完全支持。
  4. 調試複雜性: 多容器應用的調試可能比單容器更複雜。

1. 使用 Docker Compose 來管理 MySQL 和 Redis

Docker Compose 可以讓我們同時管理多個容器。讓我們使用它來同時運行 MySQL 和 Redis。

基本YAML架構介紹

  1. 撰寫 docker-compose.yml

    version: '3' # Compose文件版本
    services: # 定義所有的服務/容器
      mysql: # 服務名
        image: mysql # 使用的鏡像
        ports:
          - "3306:3306" # 端口映射
        environment: # 環境變量
          MYSQL_ROOT_PASSWORD: rootpassword
          MYSQL_DATABASE: custom_db
    
      redis: # 另一個服務
        image: redis
        ports:
          - "6379:6379"
    
  2. 使用 Docker Compose 啟動服務
    在專案資料夾中運行以下指令來啟動 MySQL 和 Redis:

    docker-compose up -d
    

成功啟動!
DockerComposeUp

補充基本指令

  1. 創建並啟動所有服務:

    docker-compose up
    
  2. 在背景啟動所有服務:

    docker-compose up -d
    
  3. 停止並移除所有服務:

    docker-compose down
    
  4. 查看運行中的服務:

    docker-compose ps
    
  5. 查看服務日誌:

    docker-compose logs
    
  6. 為特定服務執行命令:

    docker-compose run web npm install
    
  7. 重新構建服務:

    docker-compose build
    
  8. 啟動特定服務:

    docker-compose up web
    
  9. 停止特定服務:

    docker-compose stop web
    
  10. 顯示服務的配置信息:

    docker-compose config
    

上一篇
Day11-Docker Hub線上貨櫃船
下一篇
Day13-Docker Image離線備份
系列文
從零開始的DevOps猴!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言